package com.meisupic.copyright.service;

import com.meisupic.copyright.common.PayWayEnum;
import com.meisupic.copyright.domain.po.AccountInfo;
import com.meisupic.copyright.domain.po.BusinessCooperationInfo;
import com.meisupic.copyright.domain.po.VipOrder;
import com.meisupic.copyright.domain.vo.AccountInfoVo;
import com.meisupic.copyright.domain.vo.RealNameAuthVo;
import com.meisupic.copyright.domain.vo.ScanPayResultVO;
import com.meisupic.copyright.domain.vo.VipUserVo;
import com.meisupic.copyright.support.PageResponse;
import java.util.Date;
import org.springframework.data.domain.Pageable;

/**
 * @Author lanjian
 * @Date 2018/3/11 下午3:32
 */
public interface IAccountService {

  AccountInfoVo getAccountInfo(Long userId);

  void updateAccountInfo(AccountInfoVo accountInfoVo, Long userId);

  AccountInfo getByUserId(Long userId);

  RealNameAuthVo getRealNameAuthInfo(Long userId);

  VipOrder addVipOrder(VipOrder vipOrder);

  VipOrder queryToPayVipOrder(Long userId);

  VipOrder findVipOrderByOrderNo(String orderNo);

  VipOrder findVipOrderById(Long id);

  Boolean isVip(Long userId);

  ScanPayResultVO getWeixinPayQrcode(String orderNo);

  void completePayOrder(String orderNo, PayWayEnum payWay, Date payTime);

  void updatePassword(Long userId, String password, String newPassword);

  void saveBusinessCooperation(BusinessCooperationInfo businessCooperationInfo);

  boolean isHuabanUser(Long userId);

  PageResponse<VipUserVo> getVipUsers(Pageable pageable);
}
